import axios from 'axios'
import { ElMessage } from 'element-plus'

const req = axios.create({
  baseURL: '/api', // 使用Vite代理
  timeout: 10000 // 增加超时时间
})

// 请求拦截器
req.interceptors.request.use(
  config => {
    // 可以在这里添加认证token等
    console.log('Request URL:', config.url);
    return config
  },
  error => {
    console.error('Request Error:', error);
    return Promise.reject(error)
  }
)

// 响应拦截器
req.interceptors.response.use(
  response => {
    console.log('Response:', response.config.url, response.status);
    return response
  },
  error => {
    console.error('Response Error:', error.config?.url, error.message);
    if (error.response) {
      // 服务器返回错误状态码
      ElMessage.error(`API请求失败: ${error.response.status} ${error.response.statusText}`);
    } else if (error.request) {
      // 请求已发送但没有收到响应
      ElMessage.error('网络错误，请检查后端服务是否运行');
    } else {
      // 请求配置出错
      ElMessage.error('请求配置错误');
    }
    return Promise.reject(error)
  }
)

export default req
